package com.tian.clothing.network.asynctask;

/**
 * @ClassName: MPAsyncTask
 * @Description: 异步加载网络数据封装
 * @author: dreamfutureba@gmail.com
 * @date: 2013年11月21日 下午3:23:48
 */
public class MPAsyncTask extends BaseAsyncTask<Object, Void, Object>{

	private static final int DEFAULT_TASK_ID = 100000;
	private int mTaskID;
	
	private AsyncTaskListener mAsyncTaskListener;

	public int getmTaskID() {
		return mTaskID;
	}

	public void setmTaskID(int mTaskID) {
		this.mTaskID = mTaskID;
	}

	public MPAsyncTask(AsyncTaskListener asyncTaskListener) {
		this(DEFAULT_TASK_ID ,asyncTaskListener);
	}

	public MPAsyncTask(int taskID, AsyncTaskListener mAsyncTaskListener) {
		super();
		this.mAsyncTaskListener = mAsyncTaskListener;
		setmTaskID(taskID);
	}

	@Override
	void onBeforeTask() {
		mAsyncTaskListener.onBeforeTask(mTaskID);
	}

	@Override
	Object onTask(Object... params) throws Exception {
		return mAsyncTaskListener.onTask(mTaskID, params);
	}

	@Override
	void onAfterTask(Object result) {
		mAsyncTaskListener.onAfterTask(mTaskID, result);
	}

	@Override
	void onTaskError(Exception exception) {
		mAsyncTaskListener.onTaskError(mTaskID, exception);
	}
}
